void main() {
  print(getData(123));
  print(getData("123"));

  print(getData<String>("aaa"));
  print(getData<int>(234));

  print("不使用泛型");
  List list = new List.filled(2, "");
  list[0] = 123;
  list[1] = "aaa";
  print(list);

  // 泛型声明加在前面可以在编译阶段就发现错误，如果只加在new后面，只能在运行阶段报错
  print("使用泛型");
  List<int> listInt = new List<int>.filled(2, 0);
  listInt[0] = 123;
  listInt[1] = 321;
  // listInt[2] = "1231224";
  print(listInt);
}

/**
 * 最前面的T可加可不加
 */
T getData<T>(T value) {
  return value;
}
